Color OLED module library  v0.5
Library for the WaveShare 0.96-inch color OLED (SSD1331) module
ssd1331_copy.c
1 
2 #include "ssd1331.h"
3 
4 
5 void ssd1331_copy(screen_t* dev, int x0, int y0, int x1, int y1, int x2, int y2) {
6  int mask_cs = (1 << dev->dev_id);
7  int mask_sdi = (1 << dev->sdi_pin);
8  int mask_clk = (1 << dev->clk_pin);
9  int mask_dc = (1 << dev->dc_pin);
10 
11  ssd1331_writeLockSet(dev->dev_id);
12 
13  ssd1331_writeByte(mask_cs, mask_sdi, mask_clk, mask_dc, SSD1331_CMD_COPY, 0);
14  ssd1331_writeByte(mask_cs, mask_sdi, mask_clk, mask_dc, x0, 0);
15  ssd1331_writeByte(mask_cs, mask_sdi, mask_clk, mask_dc, y0, 0);
16  ssd1331_writeByte(mask_cs, mask_sdi, mask_clk, mask_dc, x1, 0);
17  ssd1331_writeByte(mask_cs, mask_sdi, mask_clk, mask_dc, y1, 0);
18  ssd1331_writeByte(mask_cs, mask_sdi, mask_clk, mask_dc, x2, 0);
19  ssd1331_writeByte(mask_cs, mask_sdi, mask_clk, mask_dc, y2, 0);
20 
21  int _tMark = CNT + (CLKFREQ / 2000);
22  while(_tMark > CNT); // Wait for system clock target
23 
24  ssd1331_writeLockClear(dev->dev_id);
25 }